33

jQuery 简介

jQuery 是一个轻量级操作 DOM 的 JS 库,主要包含以下功能:

  • HTML 元素选取和操作
  • HTML 事件函数
  • HTML DOM 遍历和修改
  • CSS 操作
  • JavaScript 特效和动画
  • AJAX
  • 基于 jQuery 的插件

jQuery 的优势在于兼容于所有主流浏览器, 包括 Internet Explorer 6!

jQuery 语法

$(selector).action()

文档加载就绪事件

$(document).ready(function() {
  // 代码...
});

// 简写方式
$(function() {
  // 代码...
});

$(document).ready 与 window.onload 的区别

$(document).ready 和 window.onload 都是在都是在页面加载完执行的函数,大多数情况下差别不大。
$(document).ready:是 DOM 结构绘制完毕后就执行,不必等到加载完毕。 意思就是 DOM 树加载完毕,就执行,不必等到页面中图片或其他外部文件都加载完毕。并且可以写多个.ready。
window.onload:是页面所有元素都加载完毕,包括图片等所有元素。只能执行一次。

jQuery 选择器

jQuery 选择器基于已经存在的 CSS 选择器

$('*')
​$('p')
$('ul li')
​$('ul li:last-child')
...

jQuery 事件

鼠标事件 键盘事件 表单事件 文档/窗口事件
click keypress submit load
dbclick keydown change resize
mouseenter keyup focus scroll
mouseleave blur unload
hover

常用的 jQuery 事件方法

  • click() 点击事件
  • dbclick() 双击事件
  • mouseenter() 鼠标穿过元素事件
  • mouseleave() 鼠标离开元素事件
  • mousedown() 鼠标移动到元素上方按下鼠标事件
  • mouseup() 鼠标按住移动到元素上方松开鼠标事件
  • hover() 鼠标悬停事件
  • focus() 表单元素聚焦事件
  • blur() 表单元素失去焦点事件
  • submit() 表单提交事件
  • change() 表单元素值改变事件
  • keypress() 键盘键按住事件
  • keydown() 键盘键按下事件
  • keyup() 键盘键松开事件
  • load() 指定元素加载完成式执行事件 (1.8 版本后废弃)
  • resize() 窗口大小改变事件
  • scroll() 滚动监听事件

jQuery 效果

$(selector).action(speed,callback)
变量 说明
selector 选择器
action 事件
speed 速度,毫秒,也可以为‘slow’、‘fast‘
callback 回掉函数

显示隐藏

  • hide() 隐藏元素
  • show() 显示元素
  • toggle() 显示被隐藏的元素,隐藏已显示的元素

淡入淡出

  • fadeIn() 淡入
  • fadeOut() 淡出
  • fadeToggle() 已淡出的元素淡入,已淡入的元素淡出
  • fadeTo() 渐变为给定不透明度

    $(selector).fadeTo(speed,opacity,callback);
    opacity 值为 0 与 1 之间

滑动

  • slideDown() 向下滑动展开元素
  • slideDown() 向上滑动收起元素
  • slideToggle() 已展开元素上滑收起,已收起元素下滑展示

动画

$(selector).animate({params},speed,callback);
参数 说明 是否必须
params 定义形成动画的 css 属性 必须
speed 速度,毫秒,也可以为‘slow’、‘fast‘ 可选
callback 回掉函数 可选

实例

$("button").click(function() {
  $("div").animate({
    left: "250px",
    opacity: "0.5",
    height: "150px",
    width: "150px"
  });
});

停止动画

$(selector).stop(stopAll, goToEnd);
参数 说明 是否必须
stopAll 是否应该清除动画队列,默认是 false 可选
goToEnd 是否立即完成当前动画 可选

jQuery 链(Chaining)

通过 jQuery,可以把动作/方法链接在一起。

Chaining 允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上,浏览器就不必多次查找相同的元素。

$("#p1")
  .css("color", "red")
  .slideUp(2000)
  .slideDown(2000);

// "p1" 元素首先会变为红色,然后向上滑动,再然后向下滑动

jQuery HTML

jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。

获取内容和属性

获取内容

  • text() 设置或返回所选元素的文本内容
  • html() 设置或返回所选元素的内容(包括 HTML 标记)
  • val() 设置或返回表单字段的值

获取属性

  • attr() 设置或者返回所选的属性的值

// 获取属性
$('#test').attr('href')

// 设置属性
$('#test').attr('href','http://www.baidu.com')

$('#test').attr({
    href: 'http://www.baidu.com',
    title: '百度'
})

// 回掉函数
$('#test').attr('href', function(i, origValue){
    // i 被选元素列表中当前元素的下标
    // origValue 原始值
    return origValue + '/jquery'
  })

添加删除元素

  • append() 在被选元素的结尾插入内容
  • prepend() 在被选元素的开头插入内容
  • after() 在被选元素之后插入内容
  • before() 在被选元素之前插入内容
     
  • remove() 删除被选元素(及其子元素)
  • empty() 从被选元素中删除子元素

jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。该参数可以是任何 jQuery 选择器的语法。下面的代码表示删除所有 p 元素中类名是 italic 的元素

$('p').remove('.italic')

获取并设置 css 类

  • addClass() 向被选元素添加一个或多个类
  • removeClass() 从被选元素删除一个或多个类
  • toggleClass() 对被选元素进行添加/删除类的切换操作
  • css() 设置或返回样式属性
// 返回样式属性
$("p").css("background-color");

// 设置样式属性
$("p").css("background-color", "yellow");
// 或者
$("p").css({ "background-color": "yellow", "font-size": "200%" });

尺寸方法

  • width() 元素宽度
  • height() 元素高度
  • innerWidth() 包含 padding 宽度
  • innerHeight() 包含 padding 高度
  • outerWidth() 包含 padding、border 宽度
  • outerHeight() 包含 padding、border 高度
  • outerWidth(true) 包含 padding、border、margin 宽度
  • outerHeight(true) 包含 padding、border、margin 高度

元素遍历

祖先元素:

  • parent() 返回被选元素的直接父元素,该方法只会向上一级对 DOM 树进行遍历。
  • parents() 返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。
  • parentsUntil() parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
$(document).ready(function() {
  // div > ul > li > span
  $("span").parentsUntil("div");
  // 返回 ul 和 li
});

后代元素:

  • children() 返回被选元素的所有直接子元素。
  • find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
$(document).ready(function() {
  $("div").find("span");
});

同胞元素:

  • siblings() 返回被选元素的所有同胞元素。
  • next() 返回被选元素的下一个同胞元素。
  • nextAll() 返回被选元素的所有跟随的同胞元素。
  • nextUntil() 返回介于两个给定参数之间的所有跟随的同胞元素。
  • prev() 返回被选元素的上一个同胞元素。
  • prevAll() 返回被选元素之前的所有的同胞元素。
  • prevUntil() 返回介于两个给定参数之间的所有前方的同胞元素。

元素过滤:

  • first() 返回被选元素的首个元素。
  • last() 返回被选元素的最后一个元素。
  • eq() 返回被选元素中带有指定索引号的元素。
  • filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。
  • not() 方法返回不匹配标准的所有元素。

欧西里斯的天秤
999 声望29 粉丝

前端大杂烩,等你来爆炒!